package compilador.semantico.comando;

import compilador.Command;
import compilador.CommandException;
import compilador.semantico.GerenciadorDeContexto;
import compilador.semantico.SemanticException;
import compilador.semantico.TabelaSemantica.TiposPrimitivo;

public class VerificaOperacaoBooleanaCommand implements Command {

	@Override
	public void run(String... args) throws CommandException {
		GerenciadorDeContexto pilha = GerenciadorDeContexto.getInstance();
		String tipo1 = pilha.top().getTipo();
		pilha.remove();
		String tipo2 = pilha.top().getTipo();
		
		if(! (tipo1.equals(TiposPrimitivo.Boolean.name()) && tipo2.equals(TiposPrimitivo.Boolean.name())) ) {
			throw new SemanticException("Operacao booleana invalida: um dos operadores nao eh boolean.");
		}

	}

}
